A transaction is assumed to be a sequence of one or more computer operations, also herein termed computer steps, performed by a computing system, which change a state of the system. Methods for processing transactions, and in particular for recovering “gracefully” from a failure in such processing, are known in the art. Transaction Processing: Concepts and Techniques, by Gray and Reuter, published by Morgan Kaufmann Publishers, San Mateo Calif. (1993), describes transactions and their processing in detail, and sections 1.2 and chapter 10, respectively entitled “What Is a Transaction Processing System,” and “Transaction Manager Concepts,” are incorporated herein by reference.
As stated in the above-referenced section 1.2, a transaction has the properties of Atomicity, Consistency, Isolation, and Durability (ACID). The properties are described in section 1.2, and may be summarized as follows:                Atomicity Either all operations happen or none happen.        Consistency The transaction must result in a correct transformation of the state. The transaction must be a “correct program.”        Isolation Even though transactions execute concurrently, it appears to each transaction, T, that others executed either before T or after T.        Durability Once a transaction completes successfully (commits), its changes to the state survive failures.        
A transaction manager, which may comprise one or more sub-managers, depending on the computing system in which the transactions are being executed, monitors the progress of the transactions. By monitoring the transactions, the manager ensures that the ACID properties are complied with and also enables the possibility of a graceful recovery if a failure occurs during the transaction process.
Chapter 10 of Transaction Processing: Concepts and Techniques describes a “DO-UNDO-REDO” protocol, in which information termed a transaction log or journal is stored during the transaction process (the “DO” phase). Typically, the transaction manager periodically performs a checkpoint operation which writes from volatile storage to stable storage log records and system updates, and also writes to stable storage a checkpoint record indicating active transactions at the time of the checkpoint. The transaction manager can UNDO transactions——typically necessary if it is determined that one of the ACID properties has not been complied with—by undoing each of the logged individual actions of each transaction in a reverse order from the most recently logged action to the last checkpoint record. The transaction manager can REDO transactions—typically to recover from a system failure—by redoing logged actions in a forward direction from the last checkpoint record.
In monitoring transactions, the transaction manager also needs to update parameters associated with the transactions, such as counters that indicate space on a disk that is available for the transactions. A number of methods are known in the art for performing such updating.
U.S. Pat. No. 6,704,839 to Butterworth, et al., whose disclosure is incorporated herein by reference, describes a data storage system using two or more controllers. The disclosure points out that the controllers must cooperate with each other to update data structures such as a log structured array, a data structure holding free segments, and segment usage counters.
U.S. Pat. No. 5,524,205 to Lomet, et al., whose disclosure is incorporated herein by reference, describes a data processing system to optimize undo log usage. The disclosure describes system records that are used for bookkeeping of free space, and that are usually recorded in a collection of space management blocks.
U.S. Pat. No. 6,353,834 to Wong, et al., whose disclosure is incorporated herein by reference, describes a transactional message queuing system that stores messages and their states in a single file. The system is stated to be made possible by clustering all information together in a contiguous space on the same disk.
U.S. Patent Application 20030061537 to Cha, et al., whose disclosure is incorporated herein by reference, describes a parallelized database system. The system combines physical logging and replay of log records. The disclosure states that to lessen contention on a global counter, it is possible to partition the database and maintain a counter for each partition, each partition having space for its own counter.
An article titled “An age-threshold algorithm for garbage collection in log-structured arrays and file systems,” by Menon et al., published as IBM Research Report RJ 10120 (1998), may be found at www.almaden.ibm.com. The article is incorporated herein by reference, and describes a method for choosing segments from a disk that are to be used for garbage collection. Inter alia, the method tracks free space available in each of the segments.